// Avoid `console` errors in browsers that lack a console.
(function() {
    var method;
    var noop = function() {};
    var methods = ['assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd', 'timeStamp', 'trace', 'warn'];
    var length = methods.length;
    var console = (window.console = window.console || {});

    while (length--) {
        method = methods[length];

        // Only stub undefined methods.
        if (!console[method]) {
            console[method] = noop;
        }
    }
} ());

// Place any jQuery/helper plugins in here.
/*!
 * Isotope v2.0.1
 * Filter & sort magical layouts
 * http://isotope.metafizzy.co
 */

/**
 * Isotope v1.5.25
 * An exquisite jQuery plugin for magical layouts
 * http://isotope.metafizzy.co
 *
 * Commercial use requires one-time purchase of a commercial license
 * http://isotope.metafizzy.co/docs/license.html
 *
 * Non-commercial use is licensed under the MIT License
 *
 * Copyright 2013 Metafizzy
 */
(function(a, b, c) {
    "use strict";
    var d = a.document,
        e = a.Modernizr,
        f = function(a) {
            return a.charAt(0).toUpperCase() + a.slice(1)
        },
        g = "Moz Webkit O Ms".split(" "),
        h = function(a) {
            var b = d.documentElement.style,
                c;
            if (typeof b[a] == "string") return a;
            a = f(a);
            for (var e = 0,
                     h = g.length; e < h; e++) {
                c = g[e] + a;
                if (typeof b[c] == "string") return c
            }
        },
        i = h("transform"),
        j = h("transitionProperty"),
        k = {
            csstransforms: function() {
                return !! i
            },
            csstransforms3d: function() {
                var a = !!h("perspective");
                if (a) {
                    var c = " -o- -moz- -ms- -webkit- -khtml- ".split(" "),
                        d = "@media (" + c.join("transform-3d),(") + "modernizr)",
                        e = b("<style>" + d + "{#modernizr{height:3px}}" + "</style>").appendTo("head"),
                        f = b('<div id="modernizr" />').appendTo("html");
                    a = f.height() === 3,
                        f.remove(),
                        e.remove()
                }
                return a
            },
            csstransitions: function() {
                return !! j
            }
        },
        l;
    if (e) for (l in k) e.hasOwnProperty(l) || e.addTest(l, k[l]);
    else {
        e = a.Modernizr = {
            _version: "1.6ish: miniModernizr for Isotope"
        };
        var m = " ",
            n;
        for (l in k) n = k[l](),
            e[l] = n,
            m += " " + (n ? "": "no-") + l;
        b("html").addClass(m)
    }
    if (e.csstransforms) {
        var o = e.csstransforms3d ? {
                translate: function(a) {
                    return "translate3d(" + a[0] + "px, " + a[1] + "px, 0) "
                },
                scale: function(a) {
                    return "scale3d(" + a + ", " + a + ", 1) "
                }
            }: {
                translate: function(a) {
                    return "translate(" + a[0] + "px, " + a[1] + "px) "
                },
                scale: function(a) {
                    return "scale(" + a + ") "
                }
            },
            p = function(a, c, d) {
                var e = b.data(a, "isoTransform") || {},
                    f = {},
                    g,
                    h = {},
                    j;
                f[c] = d,
                    b.extend(e, f);
                for (g in e) j = e[g],
                    h[g] = o[g](j);
                var k = h.translate || "",
                    l = h.scale || "",
                    m = k + l;
                b.data(a, "isoTransform", e),
                    a.style[i] = m
            };
        b.cssNumber.scale = !0,
            b.cssHooks.scale = {
                set: function(a, b) {
                    p(a, "scale", b)
                },
                get: function(a, c) {
                    var d = b.data(a, "isoTransform");
                    return d && d.scale ? d.scale: 1
                }
            },
            b.fx.step.scale = function(a) {
                b.cssHooks.scale.set(a.elem, a.now + a.unit)
            },
            b.cssNumber.translate = !0,
            b.cssHooks.translate = {
                set: function(a, b) {
                    p(a, "translate", b)
                },
                get: function(a, c) {
                    var d = b.data(a, "isoTransform");
                    return d && d.translate ? d.translate: [0, 0]
                }
            }
    }
    var q, r;
    e.csstransitions && (q = {
        WebkitTransitionProperty: "webkitTransitionEnd",
        MozTransitionProperty: "transitionend",
        OTransitionProperty: "oTransitionEnd otransitionend",
        transitionProperty: "transitionend"
    } [j], r = h("transitionDuration"));
    var s = b.event,
        t = b.event.handle ? "handle": "dispatch",
        u;
    s.special.smartresize = {
        setup: function() {
            b(this).bind("resize", s.special.smartresize.handler)
        },
        teardown: function() {
            b(this).unbind("resize", s.special.smartresize.handler)
        },
        handler: function(a, b) {
            var c = this,
                d = arguments;
            a.type = "smartresize",
            u && clearTimeout(u),
                u = setTimeout(function() {
                        s[t].apply(c, d)
                    },
                    b === "execAsap" ? 0 : 100)
        }
    },
        b.fn.smartresize = function(a) {
            return a ? this.bind("smartresize", a) : this.trigger("smartresize", ["execAsap"])
        },
        b.Isotope = function(a, c, d) {
            this.element = b(c),
                this._create(a),
                this._init(d)
        };
    var v = ["width", "height"],
        w = b(a);
    b.Isotope.settings = {
        resizable: !0,
        layoutMode: "masonry",
        containerClass: "isotope",
        itemClass: "isotope-item",
        hiddenClass: "isotope-hidden",
        hiddenStyle: {
            opacity: 0,
            scale: .001
        },
        visibleStyle: {
            opacity: 1,
            scale: 1
        },
        containerStyle: {
            position: "relative",
            overflow: "hidden"
        },
        animationEngine: "best-available",
        animationOptions: {
            queue: !1,
            duration: 800
        },
        sortBy: "original-order",
        sortAscending: !0,
        resizesContainer: !0,
        transformsEnabled: !0,
        itemPositionDataEnabled: !1
    },
        b.Isotope.prototype = {
            _create: function(a) {
                this.options = b.extend({},
                    b.Isotope.settings, a),
                    this.styleQueue = [],
                    this.elemCount = 0;
                var c = this.element[0].style;
                this.originalStyle = {};
                var d = v.slice(0);
                for (var e in this.options.containerStyle) d.push(e);
                for (var f = 0,
                         g = d.length; f < g; f++) e = d[f],
                    this.originalStyle[e] = c[e] || "";
                this.element.css(this.options.containerStyle),
                    this._updateAnimationEngine(),
                    this._updateUsingTransforms();
                var h = {
                    "original-order": function(a, b) {
                        return b.elemCount++,
                            b.elemCount
                    },
                    random: function() {
                        return Math.random()
                    }
                };
                this.options.getSortData = b.extend(this.options.getSortData, h),
                    this.reloadItems(),
                    this.offset = {
                        left: parseInt(this.element.css("padding-left") || 0, 10),
                        top: parseInt(this.element.css("padding-top") || 0, 10)
                    };
                var i = this;
                setTimeout(function() {
                        i.element.addClass(i.options.containerClass)
                    },
                    0),
                this.options.resizable && w.bind("smartresize.isotope",
                    function() {
                        i.resize()
                    }),
                    this.element.delegate("." + this.options.hiddenClass, "click",
                        function() {
                            return ! 1
                        })
            },
            _getAtoms: function(a) {
                var b = this.options.itemSelector,
                    c = b ? a.filter(b).add(a.find(b)) : a,
                    d = {
                        position: "absolute"
                    };
                return c = c.filter(function(a, b) {
                    return b.nodeType === 1
                }),
                this.usingTransforms && (d.left = 0, d.top = 0),
                    c.css(d).addClass(this.options.itemClass),
                    this.updateSortData(c, !0),
                    c
            },
            _init: function(a) {
                this.$filteredAtoms = this._filter(this.$allAtoms),
                    this._sort(),
                    this.reLayout(a)
            },
            option: function(a) {
                if (b.isPlainObject(a)) {
                    this.options = b.extend(!0, this.options, a);
                    var c;
                    for (var d in a) c = "_update" + f(d),
                    this[c] && this[c]()
                }
            },
            _updateAnimationEngine: function() {
                var a = this.options.animationEngine.toLowerCase().replace(/[ _\-]/g, ""),
                    b;
                switch (a) {
                    case "css":
                    case "none":
                        b = !1;
                        break;
                    case "jquery":
                        b = !0;
                        break;
                    default:
                        b = !e.csstransitions
                }
                this.isUsingJQueryAnimation = b,
                    this._updateUsingTransforms()
            },
            _updateTransformsEnabled: function() {
                this._updateUsingTransforms()
            },
            _updateUsingTransforms: function() {
                var a = this.usingTransforms = this.options.transformsEnabled && e.csstransforms && e.csstransitions && !this.isUsingJQueryAnimation;
                a || (delete this.options.hiddenStyle.scale, delete this.options.visibleStyle.scale),
                    this.getPositionStyles = a ? this._translate: this._positionAbs
            },
            _filter: function(a) {
                var b = this.options.filter === "" ? "*": this.options.filter;
                if (!b) return a;
                var c = this.options.hiddenClass,
                    d = "." + c,
                    e = a.filter(d),
                    f = e;
                if (b !== "*") {
                    f = e.filter(b);
                    var g = a.not(d).not(b).addClass(c);
                    this.styleQueue.push({
                        $el: g,
                        style: this.options.hiddenStyle
                    })
                }
                return this.styleQueue.push({
                    $el: f,
                    style: this.options.visibleStyle
                }),
                    f.removeClass(c),
                    a.filter(b)
            },
            updateSortData: function(a, c) {
                var d = this,
                    e = this.options.getSortData,
                    f, g;
                a.each(function() {
                    f = b(this),
                        g = {};
                    for (var a in e) ! c && a === "original-order" ? g[a] = b.data(this, "isotope-sort-data")[a] : g[a] = e[a](f, d);
                    b.data(this, "isotope-sort-data", g)
                })
            },
            _sort: function() {
                var a = this.options.sortBy,
                    b = this._getSorter,
                    c = this.options.sortAscending ? 1 : -1,
                    d = function(d, e) {
                        var f = b(d, a),
                            g = b(e, a);
                        return f === g && a !== "original-order" && (f = b(d, "original-order"), g = b(e, "original-order")),
                        (f > g ? 1 : f < g ? -1 : 0) * c
                    };
                this.$filteredAtoms.sort(d)
            },
            _getSorter: function(a, c) {
                return b.data(a, "isotope-sort-data")[c]
            },
            _translate: function(a, b) {
                return {
                    translate: [a, b]
                }
            },
            _positionAbs: function(a, b) {
                return {
                    left: a,
                    top: b
                }
            },
            _pushPosition: function(a, b, c) {
                b = Math.round(b + this.offset.left),
                    c = Math.round(c + this.offset.top);
                var d = this.getPositionStyles(b, c);
                this.styleQueue.push({
                    $el: a,
                    style: d
                }),
                this.options.itemPositionDataEnabled && a.data("isotope-item-position", {
                    x: b,
                    y: c
                })
            },
            layout: function(a, b) {
                var c = this.options.layoutMode;
                this["_" + c + "Layout"](a);
                if (this.options.resizesContainer) {
                    var d = this["_" + c + "GetContainerSize"]();
                    this.styleQueue.push({
                        $el: this.element,
                        style: d
                    })
                }
                this._processStyleQueue(a, b),
                    this.isLaidOut = !0
            },
            _processStyleQueue: function(a, c) {
                var d = this.isLaidOut ? this.isUsingJQueryAnimation ? "animate": "css": "css",
                    f = this.options.animationOptions,
                    g = this.options.onLayout,
                    h,
                    i,
                    j,
                    k;
                i = function(a, b) {
                    b.$el[d](b.style, f)
                };
                if (this._isInserting && this.isUsingJQueryAnimation) i = function(a, b) {
                    h = b.$el.hasClass("no-transition") ? "css": d,
                        b.$el[h](b.style, f)
                };
                else if (c || g || f.complete) {
                    var l = !1,
                        m = [c, g, f.complete],
                        n = this;
                    j = !0,
                        k = function() {
                            if (l) return;
                            var b;
                            for (var c = 0,
                                     d = m.length; c < d; c++) b = m[c],
                            typeof b == "function" && b.call(n.element, a, n);
                            l = !0
                        };
                    if (this.isUsingJQueryAnimation && d === "animate") f.complete = k,
                        j = !1;
                    else if (e.csstransitions) {
                        var o = 0,
                            p = this.styleQueue[0],
                            s = p && p.$el,
                            t;
                        while (!s || !s.length) {
                            t = this.styleQueue[o++];
                            if (!t) return;
                            s = t.$el
                        }
                        var u = parseFloat(getComputedStyle(s[0])[r]);
                        u > 0 && (i = function(a, b) {
                            b.$el[d](b.style, f).one(q, k)
                        },
                            j = !1)
                    }
                }
                b.each(this.styleQueue, i),
                j && k(),
                    this.styleQueue = []
            },
            resize: function() {
                this["_" + this.options.layoutMode + "ResizeChanged"]() && this.reLayout()
            },
            reLayout: function(a) {
                this["_" + this.options.layoutMode + "Reset"](),
                    this.layout(this.$filteredAtoms, a)
            },
            addItems: function(a, b) {
                var c = this._getAtoms(a);
                this.$allAtoms = this.$allAtoms.add(c),
                b && b(c)
            },
            insert: function(a, b) {
                this.element.append(a);
                var c = this;
                this.addItems(a,
                    function(a) {
                        var d = c._filter(a);
                        c._addHideAppended(d),
                            c._sort(),
                            c.reLayout(),
                            c._revealAppended(d, b)
                    })
            },
            appended: function(a, b) {
                var c = this;
                this.addItems(a,
                    function(a) {
                        c._addHideAppended(a),
                            c.layout(a),
                            c._revealAppended(a, b)
                    })
            },
            _addHideAppended: function(a) {
                this.$filteredAtoms = this.$filteredAtoms.add(a),
                    a.addClass("no-transition"),
                    this._isInserting = !0,
                    this.styleQueue.push({
                        $el: a,
                        style: this.options.hiddenStyle
                    })
            },
            _revealAppended: function(a, b) {
                var c = this;
                setTimeout(function() {
                        a.removeClass("no-transition"),
                            c.styleQueue.push({
                                $el: a,
                                style: c.options.visibleStyle
                            }),
                            c._isInserting = !1,
                            c._processStyleQueue(a, b)
                    },
                    10)
            },
            reloadItems: function() {
                this.$allAtoms = this._getAtoms(this.element.children())
            },
            remove: function(a, b) {
                this.$allAtoms = this.$allAtoms.not(a),
                    this.$filteredAtoms = this.$filteredAtoms.not(a);
                var c = this,
                    d = function() {
                        a.remove(),
                        b && b.call(c.element)
                    };
                a.filter(":not(." + this.options.hiddenClass + ")").length ? (this.styleQueue.push({
                    $el: a,
                    style: this.options.hiddenStyle
                }), this._sort(), this.reLayout(d)) : d()
            },
            shuffle: function(a) {
                this.updateSortData(this.$allAtoms),
                    this.options.sortBy = "random",
                    this._sort(),
                    this.reLayout(a)
            },
            destroy: function() {
                var a = this.usingTransforms,
                    b = this.options;
                this.$allAtoms.removeClass(b.hiddenClass + " " + b.itemClass).each(function() {
                    var b = this.style;
                    b.position = "",
                        b.top = "",
                        b.left = "",
                        b.opacity = "",
                    a && (b[i] = "")
                });
                var c = this.element[0].style;
                for (var d in this.originalStyle) c[d] = this.originalStyle[d];
                this.element.unbind(".isotope").undelegate("." + b.hiddenClass, "click").removeClass(b.containerClass).removeData("isotope"),
                    w.unbind(".isotope")
            },
            _getSegments: function(a) {
                var b = this.options.layoutMode,
                    c = a ? "rowHeight": "columnWidth",
                    d = a ? "height": "width",
                    e = a ? "rows": "cols",
                    g = this.element[d](),
                    h,
                    i = this.options[b] && this.options[b][c] || this.$filteredAtoms["outer" + f(d)](!0) || g;
                h = Math.floor(g / i),
                    h = Math.max(h, 1),
                    this[b][e] = h,
                    this[b][c] = i
            },
            _checkIfSegmentsChanged: function(a) {
                var b = this.options.layoutMode,
                    c = a ? "rows": "cols",
                    d = this[b][c];
                return this._getSegments(a),
                this[b][c] !== d
            },
            _masonryReset: function() {
                this.masonry = {},
                    this._getSegments();
                var a = this.masonry.cols;
                this.masonry.colYs = [];
                while (a--) this.masonry.colYs.push(0)
            },
            _masonryLayout: function(a) {
                var c = this,
                    d = c.masonry;
                a.each(function() {
                    var a = b(this),
                        e = Math.ceil(a.outerWidth(!0) / d.columnWidth);
                    e = Math.min(e, d.cols);
                    if (e === 1) c._masonryPlaceBrick(a, d.colYs);
                    else {
                        var f = d.cols + 1 - e,
                            g = [],
                            h,
                            i;
                        for (i = 0; i < f; i++) h = d.colYs.slice(i, i + e),
                            g[i] = Math.max.apply(Math, h);
                        c._masonryPlaceBrick(a, g)
                    }
                })
            },
            _masonryPlaceBrick: function(a, b) {
                var c = Math.min.apply(Math, b),
                    d = 0;
                for (var e = 0,
                         f = b.length; e < f; e++) if (b[e] === c) {
                    d = e;
                    break
                }
                var g = this.masonry.columnWidth * d,
                    h = c;
                this._pushPosition(a, g, h);
                var i = c + a.outerHeight(!0),
                    j = this.masonry.cols + 1 - f;
                for (e = 0; e < j; e++) this.masonry.colYs[d + e] = i
            },
            _masonryGetContainerSize: function() {
                var a = Math.max.apply(Math, this.masonry.colYs);
                return {
                    height: a
                }
            },
            _masonryResizeChanged: function() {
                return this._checkIfSegmentsChanged()
            },
            _fitRowsReset: function() {
                this.fitRows = {
                    x: 0,
                    y: 0,
                    height: 0
                }
            },
            _fitRowsLayout: function(a) {
                var c = this,
                    d = this.element.width(),
                    e = this.fitRows;
                a.each(function() {
                    var a = b(this),
                        f = a.outerWidth(!0),
                        g = a.outerHeight(!0);
                    e.x !== 0 && f + e.x > d && (e.x = 0, e.y = e.height),
                        c._pushPosition(a, e.x, e.y),
                        e.height = Math.max(e.y + g, e.height),
                        e.x += f
                })
            },
            _fitRowsGetContainerSize: function() {
                return {
                    height: this.fitRows.height
                }
            },
            _fitRowsResizeChanged: function() {
                return ! 0
            },
            _cellsByRowReset: function() {
                this.cellsByRow = {
                    index: 0
                },
                    this._getSegments(),
                    this._getSegments(!0)
            },
            _cellsByRowLayout: function(a) {
                var c = this,
                    d = this.cellsByRow;
                a.each(function() {
                    var a = b(this),
                        e = d.index % d.cols,
                        f = Math.floor(d.index / d.cols),
                        g = (e + .5) * d.columnWidth - a.outerWidth(!0) / 2,
                        h = (f + .5) * d.rowHeight - a.outerHeight(!0) / 2;
                    c._pushPosition(a, g, h),
                        d.index++
                })
            },
            _cellsByRowGetContainerSize: function() {
                return {
                    height: Math.ceil(this.$filteredAtoms.length / this.cellsByRow.cols) * this.cellsByRow.rowHeight + this.offset.top
                }
            },
            _cellsByRowResizeChanged: function() {
                return this._checkIfSegmentsChanged()
            },
            _straightDownReset: function() {
                this.straightDown = {
                    y: 0
                }
            },
            _straightDownLayout: function(a) {
                var c = this;
                a.each(function(a) {
                    var d = b(this);
                    c._pushPosition(d, 0, c.straightDown.y),
                        c.straightDown.y += d.outerHeight(!0)
                })
            },
            _straightDownGetContainerSize: function() {
                return {
                    height: this.straightDown.y
                }
            },
            _straightDownResizeChanged: function() {
                return ! 0
            },
            _masonryHorizontalReset: function() {
                this.masonryHorizontal = {},
                    this._getSegments(!0);
                var a = this.masonryHorizontal.rows;
                this.masonryHorizontal.rowXs = [];
                while (a--) this.masonryHorizontal.rowXs.push(0)
            },
            _masonryHorizontalLayout: function(a) {
                var c = this,
                    d = c.masonryHorizontal;
                a.each(function() {
                    var a = b(this),
                        e = Math.ceil(a.outerHeight(!0) / d.rowHeight);
                    e = Math.min(e, d.rows);
                    if (e === 1) c._masonryHorizontalPlaceBrick(a, d.rowXs);
                    else {
                        var f = d.rows + 1 - e,
                            g = [],
                            h,
                            i;
                        for (i = 0; i < f; i++) h = d.rowXs.slice(i, i + e),
                            g[i] = Math.max.apply(Math, h);
                        c._masonryHorizontalPlaceBrick(a, g)
                    }
                })
            },
            _masonryHorizontalPlaceBrick: function(a, b) {
                var c = Math.min.apply(Math, b),
                    d = 0;
                for (var e = 0,
                         f = b.length; e < f; e++) if (b[e] === c) {
                    d = e;
                    break
                }
                var g = c,
                    h = this.masonryHorizontal.rowHeight * d;
                this._pushPosition(a, g, h);
                var i = c + a.outerWidth(!0),
                    j = this.masonryHorizontal.rows + 1 - f;
                for (e = 0; e < j; e++) this.masonryHorizontal.rowXs[d + e] = i
            },
            _masonryHorizontalGetContainerSize: function() {
                var a = Math.max.apply(Math, this.masonryHorizontal.rowXs);
                return {
                    width: a
                }
            },
            _masonryHorizontalResizeChanged: function() {
                return this._checkIfSegmentsChanged(!0)
            },
            _fitColumnsReset: function() {
                this.fitColumns = {
                    x: 0,
                    y: 0,
                    width: 0
                }
            },
            _fitColumnsLayout: function(a) {
                var c = this,
                    d = this.element.height(),
                    e = this.fitColumns;
                a.each(function() {
                    var a = b(this),
                        f = a.outerWidth(!0),
                        g = a.outerHeight(!0);
                    e.y !== 0 && g + e.y > d && (e.x = e.width, e.y = 0),
                        c._pushPosition(a, e.x, e.y),
                        e.width = Math.max(e.x + f, e.width),
                        e.y += g
                })
            },
            _fitColumnsGetContainerSize: function() {
                return {
                    width: this.fitColumns.width
                }
            },
            _fitColumnsResizeChanged: function() {
                return ! 0
            },
            _cellsByColumnReset: function() {
                this.cellsByColumn = {
                    index: 0
                },
                    this._getSegments(),
                    this._getSegments(!0)
            },
            _cellsByColumnLayout: function(a) {
                var c = this,
                    d = this.cellsByColumn;
                a.each(function() {
                    var a = b(this),
                        e = Math.floor(d.index / d.rows),
                        f = d.index % d.rows,
                        g = (e + .5) * d.columnWidth - a.outerWidth(!0) / 2,
                        h = (f + .5) * d.rowHeight - a.outerHeight(!0) / 2;
                    c._pushPosition(a, g, h),
                        d.index++
                })
            },
            _cellsByColumnGetContainerSize: function() {
                return {
                    width: Math.ceil(this.$filteredAtoms.length / this.cellsByColumn.rows) * this.cellsByColumn.columnWidth
                }
            },
            _cellsByColumnResizeChanged: function() {
                return this._checkIfSegmentsChanged(!0)
            },
            _straightAcrossReset: function() {
                this.straightAcross = {
                    x: 0
                }
            },
            _straightAcrossLayout: function(a) {
                var c = this;
                a.each(function(a) {
                    var d = b(this);
                    c._pushPosition(d, c.straightAcross.x, 0),
                        c.straightAcross.x += d.outerWidth(!0)
                })
            },
            _straightAcrossGetContainerSize: function() {
                return {
                    width: this.straightAcross.x
                }
            },
            _straightAcrossResizeChanged: function() {
                return ! 0
            }
        },
        b.fn.imagesLoaded = function(a) {
            function h() {
                a.call(c, d)
            }
            function i(a) {
                var c = a.target;
                c.src !== f && b.inArray(c, g) === -1 && (g.push(c), --e <= 0 && (setTimeout(h), d.unbind(".imagesLoaded", i)))
            }
            var c = this,
                d = c.find("img").add(c.filter("img")),
                e = d.length,
                f = "",
                g = [];
            return e || h(),
                d.bind("load.imagesLoaded error.imagesLoaded", i).each(function() {
                    var a = this.src;
                    this.src = f,
                        this.src = a
                }),
                c
        };
    var x = function(b) {
        a.console && a.console.error(b)
    };
    b.fn.isotope = function(a, c) {
        if (typeof a == "string") {
            var d = Array.prototype.slice.call(arguments, 1);
            this.each(function() {
                var c = b.data(this, "isotope");
                if (!c) {
                    x("cannot call methods on isotope prior to initialization; attempted to call method '" + a + "'");
                    return
                }
                if (!b.isFunction(c[a]) || a.charAt(0) === "_") {
                    x("no such method '" + a + "' for isotope instance");
                    return
                }
                c[a].apply(c, d)
            })
        } else this.each(function() {
            var d = b.data(this, "isotope");
            d ? (d.option(a), d._init(c)) : b.data(this, "isotope", new b.Isotope(a, this, c))
        });
        return this
    }
})(window, jQuery);